package com.emergency.evaluate.domain;

import com.emergency.base.domain.BaseEntity;
import com.emergency.base.domain.Plan;
import com.emergency.base.domain.Scenar;
import com.fasterxml.jackson.annotation.JsonIgnore;

import javax.persistence.*;
import java.util.Date;
import java.util.List;

/**
 * Created by Administrator on 2020/4/7.
 * 评估报告
 */
@Entity
@Table (name = "eva_report")
public class Report extends BaseEntity {
    /*
    *报告分为几大模块
    * 1. 演练目的、内容、对象、时间、地点、环境、侧重点
    * 2. 评估准则及方法
    * 3. 人员流动图表（不同救援队伍人员数量、装备数量、时间以及身体状况）
    * 4. 演练进程图表（不同救援队伍任务进程及进程得分，等级）
    * 5. 评估分数（分数及分数所在等级）
    * 6. 总体评价（文本形式）
    * 暂时还没想到再添加什么进去。。。。
     */

    // 演练目的
    private String aim;

    // 演练地点
    private  double location;

    //总体开始和结束时间,持续时间
    private Date startTime;
    private Date endTime;
    private int days;
    private int hours;
    private int minutes;
    private int seconds;

    //将对应的想定编号与想定实体类对应
    @OneToOne (targetEntity=Scenar.class, fetch= FetchType.LAZY)
    @JoinColumn(name="scenar_id",referencedColumnName="id")
    private Scenar scenar;

    // 文本分析此次想定以及不加控制后果
    private String scnartext;

    //对应的计划编号
    @OneToOne (targetEntity=Plan.class, fetch= FetchType.LAZY)
    @JoinColumn(name="plan_id",referencedColumnName="id")
    private Plan plan;

    // 文本分析此次计划方案的合理性
    private String plantext;

    // 文本分析指挥人员
    private String commandtext;

    // 文本分析救援人员
    private String rescuetext;

    // 文本分析救援效果
    private String effecttext;

    // 文本分析此次全部指标
    private String totaltext;

    // 对应的人工评分表
    @JsonIgnore
    @OneToOne (targetEntity=Manual.class, fetch= FetchType.LAZY)
    @JoinColumn(name="manual_id",referencedColumnName="id")
    private Manual manual;

    //对应的系统评分表
    @JsonIgnore
    @OneToOne (targetEntity=Auto.class, fetch= FetchType.LAZY)
    @JoinColumn(name="auto_id",referencedColumnName="id")
    private Auto auto;

    // 分析评分表
    private String manualtext;

    @Transient
    private List<ReportNum> reportNums;


    public List <ReportNum> getReportNums() {
        return reportNums;
    }

    public void setReportNums(List <ReportNum> reportNums) {
        this.reportNums = reportNums;
    }


    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public int getDays() {
        return days;
    }

    public void setDays(int days) {
        this.days = days;
    }

    public int getHours() {
        return hours;
    }

    public void setHours(int hours) {
        this.hours = hours;
    }

    public int getMinutes() {
        return minutes;
    }

    public void setMinutes(int minutes) {
        this.minutes = minutes;
    }

    public int getSeconds() {
        return seconds;
    }

    public void setSeconds(int seconds) {
        this.seconds = seconds;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Scenar getScenar() {
        return scenar;
    }

    public void setScenar(Scenar scenar) {
        this.scenar = scenar;
    }

    public String getScnartext() {
        return scnartext;
    }

    public void setScnartext(String scnartext) {
        this.scnartext = scnartext;
    }

    public Plan getPlan() {
        return plan;
    }

    public void setPlan(Plan plan) {
        this.plan = plan;
    }

    public String getPlantext() {
        return plantext;
    }

    public void setPlantext(String plantext) {
        this.plantext = plantext;
    }

    public String getCommandtext() {
        return commandtext;
    }

    public void setCommandtext(String commandtext) {
        this.commandtext = commandtext;
    }

    public String getRescuetext() {
        return rescuetext;
    }

    public void setRescuetext(String rescuetext) {
        this.rescuetext = rescuetext;
    }

    public String getEffecttext() {
        return effecttext;
    }

    public void setEffecttext(String effecttext) {
        this.effecttext = effecttext;
    }

    public String getTotaltext() {
        return totaltext;
    }

    public void setTotaltext(String totaltext) {
        this.totaltext = totaltext;
    }

    public Manual getManual() {
        return manual;
    }

    public void setManual(Manual manual) {
        this.manual = manual;
    }

    public String getAim() {
        return aim;
    }

    public void setAim(String aim) {
        this.aim = aim;
    }

    public double getLocation() {
        return location;
    }

    public void setLocation(double location) {
        this.location = location;
    }

    public String getManualtext() {
        return manualtext;
    }

    public void setManualtext(String manualtext) {
        this.manualtext = manualtext;
    }

    public Auto getAuto() {
        return auto;
    }

    public void setAuto(Auto auto) {
        this.auto = auto;
    }
}
